package com.rbac.admin.common.result;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 返回结果状态码枚举
 * 
 * @author rbac-admin
 * @since 2024-01-20
 */
@Getter
@AllArgsConstructor
public enum ResultCode {
    
    /**
     * 成功
     */
    SUCCESS(200, "操作成功"),
    
    /**
     * 失败
     */
    FAILED(500, "操作失败"),
    
    /**
     * 参数验证失败
     */
    VALIDATE_FAILED(400, "参数验证失败"),
    
    /**
     * 未认证
     */
    UNAUTHORIZED(401, "暂未登录或token已经过期"),
    
    /**
     * 未授权
     */
    FORBIDDEN(403, "没有相关权限"),
    
    /**
     * 资源未找到
     */
    NOT_FOUND(404, "资源未找到"),
    
    /**
     * 请求方法不支持
     */
    METHOD_NOT_ALLOWED(405, "请求方法不支持"),
    
    /**
     * 用户名或密码错误
     */
    USERNAME_PASSWORD_ERROR(1001, "用户名或密码错误"),
    
    /**
     * 用户不存在
     */
    USER_NOT_EXIST(1002, "用户不存在"),
    
    /**
     * 用户已被禁用
     */
    USER_DISABLED(1003, "用户已被禁用"),
    
    /**
     * 验证码错误
     */
    CAPTCHA_ERROR(1004, "验证码错误"),
    
    /**
     * 数据不存在
     */
    DATA_NOT_EXIST(2001, "数据不存在"),
    
    /**
     * 数据已存在
     */
    DATA_EXIST(2002, "数据已存在"),
    
    /**
     * 数据有关联，无法删除
     */
    DATA_RELATED(2003, "数据有关联，无法删除");
    
    private final Integer code;
    private final String message;
}